package com.fengze.business.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.fengze.common.annotation.Excel;
import com.fengze.common.core.domain.BaseEntity;

/**
 * 发票信息对象 fz_invoice_info
 * 
 * @author lug
 * @date 2024-02-28
 */
public class InvoiceInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    private String createUserName;

    @JsonIgnore
    private BigDecimal minMoney;

    @JsonIgnore
    private BigDecimal maxMoney;




    /** 主键 */
    private Long id;

    /** 创建用户id */
    @Excel(name = "创建用户id")
    private Long userId;

    /** 开票金额 */
    @Excel(name = "开票金额")
    private BigDecimal money;

    /** 开票类型code */
    @Excel(name = "开票类型code")
    private String billingTypeCode;

    /** 开票类型名称 */
    @Excel(name = "开票类型名称")
    private String billingTypeName;

    /** 抬头类型code */
    @Excel(name = "抬头类型code")
    private String headerTypeCode;

    /** 抬头类型名称 */
    @Excel(name = "抬头类型名称")
    private String headerTypeName;

    /** 抬头内容 */
    @Excel(name = "抬头内容")
    private String headerContent;

    /** 电话号码 */
    @Excel(name = "电话号码")
    private String phone;

    /** 纳税人识别号 */
    @Excel(name = "纳税人识别号")
    private String taxpayerIdentificationNumber;

    /** 开户行 */
    @Excel(name = "开户行")
    private String bankName;

    /** 银行账号 */
    @Excel(name = "银行账号")
    private String bankAccount;

    /** 银行营业网点 */
    @Excel(name = "银行营业网点")
    private String bankBusinessOutlets;

    /** 地址 */
    @Excel(name = "地址")
    private String address;

    /** 合同id */
    @Excel(name = "合同id")
    private Long contractId;

    /** 合同名称 */
    @Excel(name = "合同名称")
    private String contractName;

    /** 发票号码 */
    @Excel(name = "发票号码")
    private String invoiceNumber;

    /** 开票时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date invoiceTime;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date auditTime;

    private Long auditUserId;

    private String auditUserName;

    private String invoiceUserName;


    /** 开票人id */
    @Excel(name = "开票人id")
    private Long invoiceUserId;

    @JsonIgnore
    private String deleteFileInfoIdStr;

    private Integer status;

    public String getCreateUserName() {
        return createUserName;
    }

    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }

    public BigDecimal getMinMoney() {
        return minMoney;
    }

    public void setMinMoney(BigDecimal minMoney) {
        this.minMoney = minMoney;
    }

    public BigDecimal getMaxMoney() {
        return maxMoney;
    }

    public void setMaxMoney(BigDecimal maxMoney) {
        this.maxMoney = maxMoney;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    private List<FileInfo> fileInfoList;

    private String deptName;

    private Long deptId;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setMoney(BigDecimal money) 
    {
        this.money = money;
    }

    public BigDecimal getMoney() 
    {
        return money;
    }
    public void setBillingTypeCode(String billingTypeCode) 
    {
        this.billingTypeCode = billingTypeCode;
    }

    public String getBillingTypeCode() 
    {
        return billingTypeCode;
    }
    public void setBillingTypeName(String billingTypeName) 
    {
        this.billingTypeName = billingTypeName;
    }

    public String getBillingTypeName() 
    {
        return billingTypeName;
    }
    public void setHeaderTypeCode(String headerTypeCode) 
    {
        this.headerTypeCode = headerTypeCode;
    }

    public String getHeaderTypeCode() 
    {
        return headerTypeCode;
    }
    public void setHeaderTypeName(String headerTypeName) 
    {
        this.headerTypeName = headerTypeName;
    }

    public String getHeaderTypeName() 
    {
        return headerTypeName;
    }
    public void setHeaderContent(String headerContent) 
    {
        this.headerContent = headerContent;
    }

    public String getHeaderContent() 
    {
        return headerContent;
    }
    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }
    public void setTaxpayerIdentificationNumber(String taxpayerIdentificationNumber) 
    {
        this.taxpayerIdentificationNumber = taxpayerIdentificationNumber;
    }

    public String getTaxpayerIdentificationNumber() 
    {
        return taxpayerIdentificationNumber;
    }
    public void setBankName(String bankName) 
    {
        this.bankName = bankName;
    }

    public String getBankName() 
    {
        return bankName;
    }
    public void setBankAccount(String bankAccount) 
    {
        this.bankAccount = bankAccount;
    }

    public String getBankAccount() 
    {
        return bankAccount;
    }
    public void setBankBusinessOutlets(String bankBusinessOutlets) 
    {
        this.bankBusinessOutlets = bankBusinessOutlets;
    }

    public String getBankBusinessOutlets() 
    {
        return bankBusinessOutlets;
    }
    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }
    public void setContractId(Long contractId) 
    {
        this.contractId = contractId;
    }

    public Long getContractId() 
    {
        return contractId;
    }
    public void setContractName(String contractName) 
    {
        this.contractName = contractName;
    }

    public String getContractName() 
    {
        return contractName;
    }
    public void setInvoiceNumber(String invoiceNumber)
    {
        this.invoiceNumber = invoiceNumber;
    }

    public String getInvoiceNumber()
    {
        return invoiceNumber;
    }
    public void setInvoiceTime(Date invoiceTime) 
    {
        this.invoiceTime = invoiceTime;
    }

    public Date getInvoiceTime() 
    {
        return invoiceTime;
    }
    public void setInvoiceUserId(Long invoiceUserId) 
    {
        this.invoiceUserId = invoiceUserId;
    }

    public Long getInvoiceUserId() 
    {
        return invoiceUserId;
    }

    public String getDeleteFileInfoIdStr() {
        return deleteFileInfoIdStr;
    }

    public void setDeleteFileInfoIdStr(String deleteFileInfoIdStr) {
        this.deleteFileInfoIdStr = deleteFileInfoIdStr;
    }


    public List<FileInfo> getFileInfoList() {
        return fileInfoList;
    }

    public void setFileInfoList(List<FileInfo> fileInfoList) {
        this.fileInfoList = fileInfoList;
    }

    public Date getAuditTime() {
        return auditTime;
    }

    public void setAuditTime(Date auditTime) {
        this.auditTime = auditTime;
    }

    public Long getAuditUserId() {
        return auditUserId;
    }

    public void setAuditUserId(Long auditUserId) {
        this.auditUserId = auditUserId;
    }

    public String getAuditUserName() {
        return auditUserName;
    }

    public void setAuditUserName(String auditUserName) {
        this.auditUserName = auditUserName;
    }

    public String getInvoiceUserName() {
        return invoiceUserName;
    }

    public void setInvoiceUserName(String invoiceUserName) {
        this.invoiceUserName = invoiceUserName;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("money", getMoney())
            .append("billingTypeCode", getBillingTypeCode())
            .append("billingTypeName", getBillingTypeName())
            .append("headerTypeCode", getHeaderTypeCode())
            .append("headerTypeName", getHeaderTypeName())
            .append("headerContent", getHeaderContent())
            .append("phone", getPhone())
            .append("taxpayerIdentificationNumber", getTaxpayerIdentificationNumber())
            .append("bankName", getBankName())
            .append("bankAccount", getBankAccount())
            .append("bankBusinessOutlets", getBankBusinessOutlets())
            .append("address", getAddress())
            .append("contractId", getContractId())
            .append("contractName", getContractName())
            .append("remark", getRemark())
            .append(" invoiceNumber", getInvoiceNumber())
            .append("invoiceTime", getInvoiceTime())
            .append("invoiceUserId", getInvoiceUserId())
            .toString();
    }
}
